home *** CD-ROM | disk | FTP | other *** search
/ PCNet 2004 October / PCNET_CD_2004_10_1.iso / shareware / SESDemo.exe / {app} / CGI / sessearch.js < prev    next >
Encoding:
Text File  |  2004-07-07  |  6.9 KB  |  271 lines

  1. function GetDirFromPath (path)
  2. {
  3.     var bslash = path.lastIndexOf ('\\');
  4.     var slash = path.lastIndexOf ('/');
  5.     if (bslash == -1 || slash > bslash)
  6.         bslash = slash;
  7.  
  8.     if (bslash == -1)
  9.     {
  10.         return '';
  11.     }
  12.     else
  13.     {
  14.         return path.substring (0, bslash);
  15.     }
  16. }
  17.  
  18. function GetAbsolutePath (rel)
  19. {
  20.     var curPath = document.location.href;
  21.     curPath = ReplaceAll (curPath, 'file:///', '');
  22.     curPath = ReplaceAll (curPath, 'file://', '');
  23.     curPath = ReplaceAll (curPath, '/', '\\');
  24.     if (curPath.length >= 2)
  25.     {
  26.         if (curPath.substr (1, 1) == '|')
  27.         {
  28.             curPath = curPath.substr (0, 1) + ':' + curPath.substr (2);
  29.         }
  30.         if (curPath.substr (1, 1) != ':')
  31.         {
  32.             curPath = '\\\\' + curPath;
  33.         }
  34.     }
  35.     curPath = unescape (curPath);
  36.     
  37.     var root = GetDirFromPath (curPath);
  38.     if (rel.length > 2 && rel.substr (0, 2) == './') rel = rel.substr (2);
  39.     var absPath = root + '\\' + ReplaceAll (rel, '/', '\\');
  40.     return absPath;
  41. }
  42.  
  43. function FormItemsToUrl (url, form)
  44. {
  45.     var queryString = url;
  46.     var els = FindAllFormItems (form);
  47.     var i;
  48.     if (form)
  49.     {
  50.         for (i = 0; i < els.length; i++)
  51.         {
  52.             var nm = els [i];
  53.             var val = form.elements [nm].value;
  54.             queryString += ((queryString.indexOf ('?') == -1) ? '?' : '&') + nm + '=' + val;
  55.         }
  56.     }
  57.     return queryString;
  58. }
  59.  
  60. function SwitchSearchType (docURL, oldType, newType)
  61. {
  62.     if (docURL.indexOf('noswitch=1') == -1)
  63.     {
  64.         var newURL = ReplaceAll (docURL, 'mode=' + oldType, 'mode=' + newType + '&noswitch=1');
  65.         if (newURL.indexOf('mode=' + newType) == -1)
  66.             newURL += (newURL.indexOf('?')==-1?'?':'&') + 'mode=' + newType + '&noswitch=1';
  67.         window.location.href = newURL;
  68.         return true;
  69.     }
  70.     return false;
  71. }
  72.  
  73. function SubmitSearch (paramStr)
  74. {
  75.     var absPath="";
  76.     var sepCh="";
  77.     var docURL = document.URL;
  78.     if (!window.SearchCtl || window.SearchCtl.readyState!=4)
  79.     {
  80.         var compURL;
  81.         if (paramStr)
  82.         {
  83.             var qm = docURL.indexOf('?');
  84.             if (qm != -1)
  85.                 compURL = docURL.substr (0, qm) + paramStr;
  86.             else
  87.                 compURL = docURL + paramStr;
  88.         }
  89.         else
  90.         {
  91.             compURL = docURL;
  92.         }
  93.         if (SwitchSearchType (compURL, 'activex', 'java'))
  94.             return false;
  95.     }
  96.     absPath = GetOptionFromUrl ('dir', paramStr);
  97.     if (!absPath)
  98.     {
  99.         absPath = GetAbsolutePath ('');
  100.     }
  101.     var filter = 0;
  102.     // FILTERS (ORed values):
  103.     // 1 - start date, 2 - end date, 4 - max day count, 8 - document type
  104.     
  105.     var format = GetOptionFromUrl ('vdt', paramStr);
  106.     // FORMAT (when document type is set as one of the filters) (ORed values)
  107.     // 1 - PDF, 2 - DOC, 4 - XLS, 8 - PPT, 16 - other, 65535 (0xFFFF) - ALL
  108.  
  109.     if (!format || format == 0)
  110.     {
  111.         format = 65535;
  112.     }
  113.     else
  114.     {
  115.         filter = filter | 8;
  116.     }
  117.  
  118.     var count = GetOptionFromUrl ('cnt', paramStr);
  119.     if (!count || count == 0)
  120.     {
  121.         count = 10;
  122.     }
  123.     var strt = GetOptionFromUrl ('strt', paramStr);
  124.     if (!strt)
  125.     {
  126.         strt = 0;
  127.     }
  128.     
  129.     var days = GetOptionFromUrl ('pvdc', paramStr);
  130.     if (days && days != 0)
  131.     {
  132.         filter = filter | 4;
  133.     }
  134.     var df = GetOptionFromUrl ('df', paramStr);
  135.     var sy = GetOptionFromUrl ('sdy', paramStr);
  136.     var sm = GetOptionFromUrl ('sdm', paramStr);
  137.     var sd = GetOptionFromUrl ('sdd', paramStr);
  138.     var ey = GetOptionFromUrl ('edy', paramStr);
  139.     var em = GetOptionFromUrl ('edm', paramStr);
  140.     var ed = GetOptionFromUrl ('edd', paramStr);
  141.     if (df == 'on' || df == 1)
  142.     {
  143.         if (sy != 0 && sm != 0 && sd != 0)
  144.         {
  145.             filter = filter | 1;
  146.         }
  147.         if (ey != 0 && em != 0 && ed != 0)
  148.         {
  149.             filter = filter | 2;
  150.         }
  151.     }
  152.     if(GetOptionFromUrl ('noslides', paramStr) == 1)
  153.     {
  154.         filter = filter | 32;
  155.     }
  156.     var prefix = GetOptionFromUrl ('pref', paramStr);
  157.     if(!prefix) prefix = '';
  158.     var sec = GetOptionFromUrl ('sec', paramStr);
  159.     if (sec && sec.length > 0)
  160.     {
  161.         if (prefix.length > 0) prefix += ',';
  162.         prefix += 'url:' + unescape(sec);
  163.         filter = filter | 256;
  164.     }
  165.  
  166.     window.absPath = absPath;
  167.     var q = GetOptionFromUrl ('q', paramStr);
  168.     if (q)
  169.     {
  170.         q = unescape (q);
  171.         q = ReplaceAll (q, '+', ' ');
  172.     }
  173.     window.searchString = q;
  174.     var sort = GetOptionFromUrl ('sort', paramStr);
  175.     if (!sort) sort = 0;
  176.     SearchCtl.Search2(absPath,q,sort,0,count,strt,prefix,filter,format,sy,sm,sd,ey,em,ed,days);
  177. }
  178.  
  179. function SearchLoaded ()
  180. {
  181.     var query = GetOptionFromUrl ('q');
  182.     if (query)
  183.     {
  184.         SubmitSearch ();
  185.     }
  186. }
  187.  
  188. function IsActiveXCompatible()
  189. {
  190.     var Opera=(navigator.userAgent.indexOf('Opera')!=-1)||(navigator.appName.indexOf('Opera')!=-1)||(window.opera);
  191.     var IE4=(document.all&&!Opera) ;
  192.     var mac=((IE4)&&(navigator.appVersion.indexOf ("Mac")!=-1));
  193.     return (IE4&&!mac);
  194. }
  195.  
  196. function CreateJava()
  197. {
  198.     var pagePath;
  199.     var url = window.location.href;
  200.     var qInd = url.indexOf ('?');
  201.     if (qInd != -1)
  202.         pagePath = url.substr (0, qInd);
  203.     else
  204.         pagePath = url; 
  205.     if (IsActiveXCompatible () && (!window.navigator || !window.navigator.javaEnabled()))
  206.     {
  207.         if (SwitchSearchType (url, 'java', 'activex'))
  208.             return;
  209.     }
  210.  
  211.     var q = GetOptionFromUrl ('q');
  212.     var pref = GetOptionFromUrl ('pref');
  213.     if (!q)    q = '';
  214.     if(!pref) pref = '';
  215.     var cnt = GetOptionFromUrl ('cnt');
  216.     if (!cnt) cnt = '';
  217.     var strt = GetOptionFromUrl ('strt');
  218.     if (!strt) strt = '';
  219.     var sec = GetOptionFromUrl ('sec');
  220.     if (!sec) sec = '';
  221.     var sort = GetOptionFromUrl ('sort');
  222.     if (!sort) sort = 0;
  223.     var pvdc = GetOptionFromUrl ('pvdc');
  224.     if (!pvdc) pvdc = 0;
  225.     var vdt = GetOptionFromUrl ('vdt');
  226.     if (!vdt) vdt = 0;
  227.     var bf = GetOptionFromUrl ('basepath');
  228.     if (q && q != '')
  229.     {
  230.         document.write("<style type=\"text/css\">\ndd{margin-left:17px}\n</style>");
  231.         document.write("<applet name='SESSearch' codebase='.' archive='sessearch.jar' code='com/xtreeme/search/SESSearchApplet.class' style='visibility:hidden' width='2' height='2' MAYSCRIPT>");
  232.         document.write("<param name='q' value='" + q + "'>");
  233.         document.write("<param name='pref' value='" + pref + "'>");
  234.         document.write("<param name='cnt' value='" + cnt + "'>");
  235.         document.write("<param name='sec' value='" + sec + "'>");
  236.         document.write("<param name='strt' value='" + strt + "'>");
  237.         document.write("<param name='wrap' value='" + pagePath + "'>");
  238.         document.write("<param name='sort' value='" + sort + "'>");
  239.         document.write("<param name='pvdc' value='" + pvdc + "'>");
  240.         document.write("<param name='vdt' value='" + vdt + "'>");
  241.         if (bf) document.write("<param name='basepath' value='" + bf + "'>");
  242.         document.write("</applet>");
  243.     }
  244. }
  245.  
  246. function CreateActiveX()
  247. {
  248.         document.write ("<object width=\"1\" height=\"1\" style=\"display:none\" id=\"SearchCtl\" name=\"SearchCtl\" codebase=\"ses_ocx/sessearch.ocx\" classid=\"CLSID:3CBA13C3-58C7-47f1-9758-D4B255A50D51\" ></object>");
  249.         onload=SearchLoaded;
  250. }
  251.  
  252. function SetSearchType()
  253. {
  254.     var bActiveXCompatible = IsActiveXCompatible ()
  255.     var modeSet = GetOptionFromUrl ('mode');
  256.     if (modeSet == 'java') bActiveXCompatible = false;
  257.     else if (modeSet == 'activex') bActiveXCompatible = true;
  258.     if (bActiveXCompatible)
  259.     {
  260.         document.noReload=true;
  261.         CreateActiveX();
  262.     }
  263.     else
  264.     {
  265.         CreateJava();
  266.         document.noReload=false;
  267.     }
  268. }
  269.  
  270. SetSearchType();
  271.